<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
// 英文：
  //  - 连接、concat拼接
  // separator - 分割器/分割符
  // join - 拼接/结合

var arr = ['a', 'b', 1, 2, 'a', 3, 'c', 'a', 4];


/* arr.concat(...items)   ->   将items的数据，与 arr 拼接到一起
  注：concat 不会改变 变量本身的值。

  用法1. arr.concat('x', 'y') 
    即将 items 的值，与原arr 拼接到一起，并将新的数组返回

  用法2：arr.concat(['x', 'y'], [['z']], 'o', 'j');
    即 concat 会自动“抹平”一层数组：
      -> ['a', 'b', 1, 2, 3, 4, 'x', 'y', ['z'], 'o', 'j']
*/


/* arr.join(?separator 默认值',')
  注： join 不会改变 变量本身的值

  作用：将数组的每个元素以 separator 连接，组成一个字符串，
    新的字符串作为返回值

  eg: 
    [1,2,3,4].join('')  -> '1234'
    [1,2,3,4].join()  -> '1,2,3,4'
*/

/* arr.indexOf(searchElement, fromIndex?) 
  注： join 不会改变 变量本身的值
    从左往右，进行下标的匹配

  用法1：arr.indexOf(searchElement) 
    返回 searchElement 在 arr 中的下标；
      若 searchElement 不存在于 arr 中，则返回 -1


  用法2：arr.indexOf(searchElement, fromIndex) 
    若 增加了 fromIndex 的参数，即从 fromIndex 的元素，开始 进行匹配
*/

/* arr.lastIndexOf();
  用法与作用 与 indexOf 一致；

  唯一的区别是：从右往左，进行下标的匹配
*/

var result = arr.lastIndexOf('a');
console.log('result', result);
console.log('arr', arr);
</script>